জাভাস্ক্রিপ্ট ফাংশন function কি-ওয়ার্ড দ্বারা ডিফাইন করা হয়।
আপনি ফাংশন ডিক্লেয়ারেশন অথবা ফাংশন এক্সপ্রেশন ব্যবহার করতে পারেন।
ফাংশন ডিক্লেয়ারেশনের গঠনপ্রণালীঃ
function functionName (parameter) {
এক্সিকিউটকৃত কোড
}
ফাংশনকে ডিক্লেয়ার করলেই ইহা এক্সিকিউট হয় না, ফাংশনকে কল করলে ইহা এক্সিকিউট হয়ঃ
<!DOCTYPE html>
<html>
<head>
<title>জাভাস্ক্রিপ্ট উদাহরণ</title>
</head>
<body>
<p> এই উদাহারনে একটি ফাংশন কল করে যা একটি ক্যালকুলেশন এক্সিকিউট করে এবং নিম্নোক্ত ফলাফল প্রদান করেঃ </p>
<p id="demo"></p>
<script>
function myFunction(a, b) {
return a * b;
}
document.getElementById("demo").innerHTML = myFunction(4, 3);
</script>
</body>
</html>
জাভাস্ক্রিপ্টের সম্পাদনযোগ্য স্টেটমেন্টগুলোকে আলাদা করার জন্য সেমিকোলন(;) ব্যবহার করা হয়।
ফাংশন যেহেতু সম্পাদনযোগ্য স্টেটমেন্ট নয় তাই এর শেষে সেমিকোলন ব্যবহার করতে হয় না।
জাভাস্ক্রিপ্ট ফাংশনকে এক্সপ্রেশনের মাধ্যমেও ডিফাইন করা যায়।
ফাংশন এক্সপ্রেশনকে একটি ভ্যারিয়েবলের মধ্যে রাখা হয় এবং পরবর্তীতে ভ্যারিয়েবলকে ফাংশন হিসেবে ব্যবহার করা হয়ঃ
<!DOCTYPE html>
<html>
<head>
<title>জাভাস্ক্রিপ্ট উদাহরণ</title>
</head>
<body>
<p>একটি ফাংশনকে ভেরিয়েবলের মধ্যে রাখা হল</p>
<p id="demo"></p>
<script>
var x = function (a, b) {return a * b};
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>জাভাস্ক্রিপ্ট উদাহরণ</title>
</head>
<body>
<p>একটি ফাংশনকে ভেরিএবল এর মধ্যে রাখার পর, ভেরিএবলটি ফাংশন হিসেবে ব্যবহার হয়ঃ</p>
<p id="demo"></p>
<script>
var x = function (a, b) {return a * b};
document.getElementById("demo").innerHTML = x(4, 3);
</script>
</body>
</html>
উপরের ফাংশনটি anonymous(নামহীন) ফাংশন।
যেসকল ফাংশনকে ভ্যারিয়েবলে রাখা হয়, তাদের নামের প্রয়োজন হয়না। তাদেরকে সবসময় ভ্যারিয়েবলের নাম দ্বারা কল করা হয়।
উপরের ফাংশনটি সেমিকোলন দ্বারা শেষ হয়েছে। কারন ইহা সম্পাদনযোগ্য স্টেটমেন্ট।
এই টিউটোরিয়ালের শুরুতে আপনি হয়েস্টিং(Hoisting) সম্পর্কে জানতে পেরেছেন।
একটি স্কোপের ডিক্লেয়ারেশনকে সবার উপরে নিয়ে যাওয়াই হয়েস্টিং। এটি জাভাস্ক্রিপ্টের ডিফল্ট বৈশিষ্ট্য।
হয়েস্টিং শুধুমাত্র ভ্যারিয়েবল ও ফাংশন ডিক্লেয়ারেশনের ক্ষেত্রে প্রযোজ্য। এই কারনে,ফাংশন ডিক্লেয়ারেশনের পূর্বেই ফাংশনকে কল করা যায়ঃ
kt_satt_skill_example_id=1178
ফাংশন এক্সপ্রেশন হয়েস্টিং-এর অধীনে পড়ে না।
ফাংশন এক্সপ্রেশনকে সেলফ ইনভোকিং ফাংশন করা যায়। ফাংশন ডিক্লেয়ারকে সেলফ ইনভোকিং ফাংশন করা যায় না।
সেলফ ইনভোকিং এক্সপ্রেশন কল করা ছাড়াই স্বয়ংক্রিয়ভাবে কাজ করে।
সেলফ ইনভোকিং ফাংশনের গঠনপ্রণালীঃ
kt_satt_skill_example_id=1179
kt_satt_skill_example_id=1181
জাভাস্ক্রিপ্টের ভাষায় একে self-invoking anonymous function বলা হয়।
জাভাস্ক্রিপ্ট ফাংশন ভ্যালু হিসেবেও ব্যবহার হতে পারেঃ
kt_satt_skill_example_id=1183
জাভাস্ক্রিপ্ট ফাংশন এক্সপ্রেশন হিসেবেও ব্যবহার হতে পারেঃ
kt_satt_skill_example_id=1185
জাভাস্ক্রিপ্টের typeof অপারেটর "function" কে ফাংশন হিসেবে রিটার্ন করে।
কিন্তু অবজেক্ট হিসেবে ফাংশনকে ভালোভাবে বর্ণনা করা যায়।
জাভাস্ক্রিপ্ট ফাংশনের প্রোপার্টি এবং মেথড উভয়ই রয়েছে।
ফাংশনকে কল করা হলে কতটি আর্গুমেন্ট থাকে arguments.length প্রোপার্টি ফাংশনের আর্গুমেন্টের সংখ্যা রিটার্ন করেঃ
kt_satt_skill_example_id=1188
toString() মেথডটি ফাংশনকে স্ট্রিং হিসেবে রিটার্ন করেঃ
kt_satt_skill_example_id=1191
ফাংশনকে অবজেক্টের প্রোপার্টি হিসেবে ডিফাইন করলে তাকে অবজেক্টের মেথড বলা হয়।
নতুন অবজেক্ট তৈরি করার জন্য ব্যবহার করা হলে ফাংশনকে অবজেক্ট কনস্ট্রাক্টর বলা হয়।
Read more